import vdk from '@lib/webapi/core/webapiRequest'
import vtoone from '@biz/config'

class Webapi {
  // 构造一个Webapi的实例对象的构造器
  constructor(config = {}) {
    this._config = config;
  }

  /**
   *执行请求API的方法
   *  apiCode ： 构建名.方法名
   *  data ： 数据源
   *  options ： 其他参数（具体参数参考readme文档）
   */
  exe(apiCode, data, options) {
    //添加API随机数清除缓存
    let S4 = () => (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    let randomNum = S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4()
    data = data || {}
    data["_"] = randomNum
    let config = Object.assign({}, this._config, {
      apiCode,
      data
    }, options);
    let response = vdk.vs.request(config)
    return response
  }

  // 设置全局参数（具体参数参考readme文档）
  set config(config) {
    Object.assign(this._config, config);
  }

  // 获取全局设置参数
  get config() {
    return this._config;
  }
}

export default Webapi
